package net.sf.rose.boot.bean;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import lombok.Data;
import net.sf.rose.file.util.resource.ResourceSqlFile;

/**
 * 数据库连接配置类
 * 
 * @author fengjian
 * @since 2019/03/02
 */
@Data
public class DatabaseBean {

	/** 数据库连接文件名 */
	private String fileName = null;

	/** 数据库名 */
	private String databaseName = null;

	/** 数据库类型 */
	private String type = null;

	/** 数据库字段类型定义(键是名称) */
	private Map<String, DataTypeBean> dataTypeMap = new HashMap<>();

	/** 数据库字段类型定义(键是数据库类型) */
	private Map<String, DataTypeBean> dataBaseTypeMap = new HashMap<>();

	/** 数据库SQL文 */
	private ResourceSqlFile resourceSql = new ResourceSqlFile();

	/**
	 * 初始化数据库字段类型定义缓存
	 * 
	 * @param fieldList
	 */
	protected void initialFieldList(List<DataTypeBean> fieldList) {
		for (DataTypeBean bean : fieldList) {
			dataTypeMap.put(bean.getName(), bean);
			dataBaseTypeMap.put(bean.getDbType().toUpperCase(), bean);
		}
	}

	public boolean isMysql() {
		return this.type.equals("mysql");
	}

	public boolean isSqlServer() {
		return this.type.equals("sqlserver");
	}

	public boolean isOracle() {
		return this.type.equals("oracle");
	}

	public boolean isPgsql() {
		return this.type.equals("pgsql");
	}

}
